/***************************************************************/
/* Copyright (c) 2009 NBEE Embedded Systems S.L.               */
/* All rights reserved.                                        */
/*                                                             */
/* Permission is hereby granted, free of charge, to any        */
/* person obtaining a copy of this software and associated     */
/* documentation files (the "Software"), to deal in the        */
/* Software without restriction, including without limitation  */
/* the rights to use, copy, modify, merge, publish,            */
/* distribute, sublicense, and/or sell copies of the           */
/* Software, and to permit persons to whom the Software is     */
/* furnished to do so, subject to the following conditions:    */
/*                                                             */
/* This code is distributed only with and for Espardino(tm)    */
/* products or derivative final products not intended as       */
/* development systems.                                        */
/*                                                             */
/* The above copyright notice and this permission notice       */
/* shall be included in all copies or substantial portions of  */
/* the Software.                                               */
/*                                                             */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY   */
/* KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE  */
/* WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR     */
/* PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS  */
/* OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR    */
/* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR  */
/* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE   */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.      */
/***************************************************************/



#include <leds_c++.hpp>
#include <micro214x.h>

Led::Led()
	{
		m_pin = NO_PIN;
		m_led = 0;
		m_stat = 0;
		m_inverted =0;
	}
Led::Led(int led) 
	{ 
		attach_led(led); 
	}
	
void Led::attach_led(int led)
	{
		m_pin=NO_PIN;
		m_led = led;
		m_stat =0;
	}
	
void Led::attach_pin(int pin, bool inverted)
	{
		m_pin = pin;
		m_inverted = inverted;
	}
	
void Led::on()
	{
		m_stat = 1;
		
		if (m_led) { LEDS_on(m_led); return; }
			
		if (m_pin!=NO_PIN)
			{
			 	IO_output(m_pin,!m_inverted);
			}
	}
	
void Led::off()
	{
		m_stat = 0;
		
		if (m_led) { LEDS_off(m_led); return; }
			
		if (m_pin!=NO_PIN)
			{
				IO_output(m_pin,m_inverted);
			}
		
	}
	
	
int Led::getStat()
	{
		return m_stat;	
	}

